<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>代码生成器</title>
</head>

<body>
  <p>代码生成器是模版编译的最后一步，他的作用是将AST转换成渲染函数中的内容，这个内容可以被称之为代码字符串。</p>
  <p title="Berwin" @click="c">1</p> 生成的代码字符串是：
  `with(this)
  {return _c(
  'p',
  {
  attrs:{'title':'Berwin'},
  on:{'click':c
  },
  [_v('1')]}
  )
  }`

  这样的一个代码字符串最终导出到外界使用时，会将代码字符串放到函数里，这个函数叫做渲染函数。
  当渲染函数被导出到外界后，模版编译的任务就完成了。

  <p>渲染函数的作用就是创建vnode。渲染函数之所以可以生成vnode，是因为代码字符串会有很多函数调用，这些函数都是虚拟DOM提供的创建vnode的方法，只是擦黄建vnode的类型不同。</p>
</body>

</html>